Міністерство освіти та науки України
Національний університет “Львівська політехніка”
Інститут комп’ютерних наук та інформаційних технологій
Кафедра автоматизованих систем управління
ПРОГРАМУВАННЯ ЗА ДОПОМОГОЮ ФУНКЦІЙ WIN32 API (частина I)
ЗБІРНИК ЛАБОРАТОРНИХ РОБІТ
Методичні вказівки
з курсу “Сиcтемне програмування та операційні системи”
для студентів базової вищої освіти
за напрямком 97.08.04 “Комп’ютерні науки”
та курсу “Операційні системи в комп’ютерній поліграфії”
для студентів базової вищої освіти
за напрямком 97.09.27 “Видавничо-поліграфічна справа”
Львів - 2002
Програмування за допомогою функцій Win32 API. Методичні вказівки з курсу “Сиcтемне програмування та операційні системи” для студентів базової вищої освіти за напрямком 97.08.04 “Комп’ютерні науки” та курсу “Операційні системи в комп’ютерній поліграфії” для студентів базової вищої освіти за напрямком 97.09.27 “Видавничо-поліграфічна справа”, Львів, НУ “Львівська політехніка”, 2002 р.
Рецензент: Вальковський В.О., д.ф-м.н., проф.
Укладачі: Зербіно Д.Д., канд. техн. наук, доц.,
Пелешко Д.Д. канд. техн. наук, доц.,
Різник О.Я., канд. техн. наук, доц.,
Рицар В.В., канд. техн. наук, доц.,
Цимбал Ю.В., асистент.
Відповідальний за випуск: Дронюк І.М. к.ф-м.н., доц.
Лабораторна робота №1
Тема – введення в програмування за допомогою API.
Мета – навчитися використовувати функції Win32 API при програмуванні в операційній системі Windows.
ТЕОРЕТИЧНІ ПОЛОЖЕННЯ
Win32 API (розшифровується як інтерфейс прикладних програм) - це множина підпрограм-функцій, на яких побудована операційна система WINDOWS, яка використовує 32х-бітну адресацію, починаючи з WINDOWS 95 і закінчуючи WINDOWS XP. Розробники WINDOWS зробили багато зусиль щоб стандартизувати як назви функцій, так і їх параметри. Тому використовувати їх не так важко, якщо засвоїти деякі загальні концепції.
Більшість функцій доступні для програм користувача, які написані для Windows на будь-якій мові програмування (у тому числі і на асемблері). Множина цих функцій розширюється при переході до наступної версії Windows, таким чином, забезпечується сумісність розроблених раніше програм із новими версіями операційної системи. Існують і функції, які не відображені в документації, або для свого застосування вимагають від програми спеціальних прав доступу до пам’яті.
Суть функцій API зрозуміти значно легше, якщо уявити, з яких файлів вони викликаються і на які групи ці функції поділяються. Асемблер – це як раз той зручний і простий засіб, який дозволить вам звертатись безпосередньо до будь-якої функції API, що знаходиться у DLLфайлі.
Секрет пізнання операційної системи через програмування на асемблері полягає у тому, що сам асемблер не накладає жодних обмежень на програму та дані, з якими вона працює. Це повинен робити сам програміст з метою захисту операційної системи від своїх некоректних дій. Таким чином, основною метою системного програмування є написання коректних програм з необмеженими можливостями (в рамках операційної системи). Для збереження коректності ми будемо користуватися певними правилами програмування, які будуть зрозумілі на конкретних прикладах.
Типи програм. Процесори стандарту Intel можуть працювати в трьох основних режимах: реальному, віртуальному і захищеному. При включенні комп’ютера його процесор працює в реальному режимі. Після завантаження операційної системи (ОС) процесор може бути переключений програмами ОС в інші режими. В реальному та віртуальному режимах використовується 16-бітна адресація з фіксованими сегментами по 64К. У захищеному режимі використовується 32х-бітна адресація з необмеженими сегментами, і адреса до пам’яті формується (на апаратному рівні) за допомогою дескрипторних таблиць, в яких задаються початкові адреси сегментів, їх довжина, та права доступу до пам'яті і до портів для процесів, які їх використовують. Крім того, в захищеному режимі реалізоване апаратне переключення між задачами за допомогою спеціальних таблиць.
Особливості виклику функцій API. Найбільш ...